// 插件封装

import axios from 'axios'
import qs from 'qs'

export default {
  install(Vue, options) {
    // 使用由库提供的配置的默认值来创建实例
    // 此时超时配置的默认值是 `0`
    var instance = axios.create()

    // 覆写库的超时默认值
    // 现在，在超时前，所有请求都会等待 2.5 秒
    instance.defaults.timeout = 2500

    // 为已知需要花费很长时间的请求覆写超时设置
    // instance.get('/longRequest', {
    //     timeout: 5000
    // });

    // 添加请求拦截器
    axios.interceptors.request.use(function(config) {
      return config
    }, function(error) {
      // 对请求错误做些什么
      return Promise.reject(error)
    })

    // 添加响应拦截器
    axios.interceptors.response.use(function(response) {
      return response
    }, function(error) {
      // 对响应错误做点什么
      return Promise.reject(error)
    })

    Vue.prototype.$get = function(url, data) {
      return axios.get(url, data)
    }

    Vue.prototype.$post = function(url, data) {
      return axios.post(url, qs.stringify(data), {
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      })
    }
  }
}
